python添加复数高斯白噪声函数 高斯白噪声例题 | 您所在的位置:网站首页 › python 添加高斯白噪声 › python添加复数高斯白噪声函数 高斯白噪声例题 |
1.dB (1)dB 是一个纯计数单位:dB = 10logX; X = 1000000000000000 = 10logX = 150 dB X = 0.000000000000001 = 10logX = -150 dB dB的引入是为了把乘除关系变换为加减,便于工程中的运算。 (2)dB是一个表征相对值的值,当考虑甲的功率相比于乙功率大或小多少个dB时,按下面计算公式: 10lg(甲功率/乙功率) 甲功率=乙功率: 10lg(1)=0dB; 甲功率=2*乙功率:10lg(2)=3dB; 2.dBw:以1W为基准 3.dBm:以1mW为基准
由此可见,0dBw是一个比0dBm大得多的多的单位,功率上相差1000倍。 dBm 减 dBm 实际上是两个功率相除。比如: (信号)30dBm - (噪声)0dBm = (信号功率)1000mW/1mW(噪声功率) = 1000 = 30dB。(式1) 4.SNR(信噪比=信号功率/噪声功率)(信噪比SNR(dB)=信号功率(dBW)-噪声功率(dBW)) 本来2个数相除((SNR)1000W/1W)转化为2个数相减30dBW-0dBW=30dB(SNR) 若信号功率为0dBW,因此,噪声的实际功率-SNRdBW。(式1) 例题一: 在正弦信号上叠加功率为-20dBW的高斯白噪声。 clear all t = 0:0.001:10; x = sin(2*pi*t); snr = 20; %设定加性高斯白噪声功率 y = awgn(x,snr); %正弦信号上叠加高斯白噪声 subplot(2,1,1);plot(t,x);title('正弦信号x'); subplot(2,1,2);plot(t,y);title('叠加高斯白噪声的正弦信号'); z = y-x; var(z) %计算噪声功率(方差)ans = 0.01函数awgn(x,snr)把加性高斯白噪声叠加到输入信号x中,snr以dB的形式指定噪声的功率。 这种情况下,信号的功率假设为0dBW(其实信号功率并不是0dBW,原来此处是假设!),噪声的功率实际上等于-snrdBW。于是,snr的值为20。 结果显示噪声功率为0.01,该值是由snr决定的。 例题二: clear all t = 0:0.001:10; x = sin(2*pi*t); snr = 20; %设定加性高斯白噪声功率 y = awgn(x,snr,10); %正弦信号上叠加高斯白噪声 subplot(2,1,1);plot(t,x);title('正弦信号x'); subplot(2,1,2);plot(t,y);title('叠加高斯白噪声的正弦信号'); z = y-x; var(z) %计算噪声功率(方差)函数awgn(x,snr,sigpower):假设输入信号的功率为sigpower(单位:dBW)(原来都是假设!) 10dBW-噪声功率=20dB,噪声功率=-10dBW 结果恰好:ans = 0.100。 例题三:终于计算信号功率了:awgn(x,snr,'measured') clear all t = 0:0.001:10; x = sin(2*pi*t); snr = 20; %设定加性高斯白噪声功率 y = awgn(x,snr,'measured'); %正弦信号上叠加高斯白噪声 subplot(2,1,1);plot(t,x);title('正弦信号x'); subplot(2,1,2);plot(t,y);title('叠加高斯白噪声的正弦信号'); z = y-x; var(z) %计算噪声功率(方差)ans = 0.005实际信号功率为0.5(sum(abs(x).^2)/length(x)),snr=20dB,噪声功率0.005,结果也验证了这一点。 例题四:用randn函数产生加性高斯白噪声 randn(n):返还一个n行n列的随机矩阵,每一行每一列都服从均值为0,方差为1的正态分布; randn(m,n):返还一个m行n列的随机矩阵,每一行每一列都服从均值为0,方差为1的正态分布; clear all t = 0:0.001:10; x = sin(2*pi*t); px = norm(x).^2/length(x); %计算信号x的功率 snr = 20; %信噪比,dB形式 pn = px./(10.^(snr./10)); %根据snr计算噪声功率 n = sqrt(pn)*randn(1,length(x)); %根据噪声功率产生相应的高斯白噪声序列 y = x+n; subplot(2,1,1);plot(t,x);title('正弦信号x') subplot(2,1,2);plot(t,y);title('叠加了高斯白噪声后的正弦信号') var(n)ans = 0.005x为一向量,norm(x)=norm(x,2)返回向量的2范数:即sum(abs(x).^2)^1/2; 根据噪声功率产生相应的高斯白噪声序列,要对噪声功率进行开方运算。(D(CX)=C^2D(X)) |
CopyRight 2018-2019 实验室设备网 版权所有 |